Although hereinafter the present invention will be described with a particular focus on specific communication systems and standards used therein, it is to be noted that any specifically mentioned aspect serves as a mere example only.
In detail, the communication method may rely on a wireless communication principle, but may also rely on a wirebound communication principle. Therefore, an interface involved in communication between a receiver and transmitter may for example be an air interface or a wired interface. Communication may rely on a TDMA (Time Divisional Multiple Access) or CDMA (Code Divisional Multiple Access) principle.
A receiver may likewise act as a transmitter and thus constitute a transceiver, while however only the receiver/transmitter aspect of the transceiver is individually highlighted in the description. Thus, a terminal such as a receiver/transmitter may for example be a mobile station MS (in case of a GSM (Global Standard for Mobile Communication) based communication system and/or method) or a user equipment UE (in case of a UMTS (Universal Mobile Telecommunications System). Nevertheless, also a server connected to a telecommunication network “connecting” the receiver/transmitter may act as a transmitter/receiver, while even a network entity such as a base station BS (in case of GSM based system/method) or a Node_B (in case of UMTS based system/method) (acting as a relay station between a transmitter and a receiver terminal may have at least partly receiver/transmitter properties as described in connection with the present invention.
A user using his terminal for data transmission runs an application on his terminal generating application data to be transmitted (note that a similar application may be run on a server). These application data are transmitted as packetized data. Such application packet data are transmitted using an application protocol. An application protocol is operated on top of a protocol stack, which protocol stack comprises plural individual stacked protocol layers adopted for such a transmission within a packet data network. Data communication between a sending/transmitting end and a receiving end relies for example on the OSI reference model (OSI=Open System Interconnection). Of course, other multiple protocol layer models may likewise be adopted in connection with the present invention still to be described. As is generally known, the OSI reference model splits the communication process between a transmitting and receiving end into seven independent layers. Layers of the same hierarchy at the sending and the receiving end share a common protocol, while a certain layer at one end also shares a protocol with the layers immediately above and below it for interlayer connection. However, the highest layer (layer 7, application layer) does not require to know any particulars of e.g. the lowest layer, layer 1, the physical layer. In brief, the seven layers of the OSI Basic Reference Model are (from bottom to top): The Physical Layer which describes the physical properties of the various communications media, as well as the electrical properties and interpretation of the exchanged signals, the Data Link Layer which describes the logical organization of data bits transmitted on a particular medium, the Network Layer which describes how a series of exchanges over various data links can deliver data between any two nodes in a network, the Transport Layer which describes the quality and nature of the data delivery, the Session Layer which describes the organization of data sequences larger than the packets handled by lower layers, the Presentation Layer which describes the syntax of data being transferred, and the Application Layer which describes “how real work actually gets done”. As the OSI reference model is expected to be known to those skilled in the art, a more detailed explanation thereof is considered to be dispensable in the present application.
Thus, in a packet data network such as GSM based networks, the flow of user data is from the application layer at the mobile station MS via the protocol stacks (in “vertical direction”) downwards to the layer 1, from there via the network entities to the receiver. The data flow from MS as transmitter, via network entities to the receiver is in “horizontal direction”, and at the receiver, the data flow in turn will become “vertical” from layer 1 via intermediate layers up to the application layer.
On the application layer, applications are run. Examples for such applications are the wireless application protocol WAP, the session initiation protocol SIP, the real time protocol RTP, digital packet data DPD signaling, Hypertext Transfer Protocol HTTP, Transmission Control Protocol TCP or the like. It is to be noted that various applications currently known and/or even those to be developed can profit from the present invention as to be described hereinafter.
Packet data or packetized data as mentioned herein are also referred to as data segments. A segment is constituted by fragments which together form the segment. For example, as generally known, a packet/segment is constituted by a header as an initial fragment and the payload portion as a remaining fragment.
The subsequent description is focused on IP based transport layer protocols such TCP and RTP. Typically, most of these transport layer protocol assume that the bit error losses on links are small, and therefore there the link layer seldom provides any form of reliability. But in case of wireless networks, the link layer losses are much higher and therefore the link layer protocols employ their own loss recovery mechanism to mitigate these losses. Specifically, the mechanism employed is to use acknowledgments, negative acknowledgments, or a combination of these two to provide reliability. In contrast to TCP, these link layer protocols only provide reliability on an individual link, but do not provide end-to-end reliability. Example of such link layer protocol can be found in EDGE/GERAN links (EDGE=Enhanced Data rates for GSM Evolution, GERAN=GPRS EDGE RAN, GPRS=general packet radio service, RAN=radio access network).
Applications such as TCP send multiple packets into the network without waiting for individual packets to be acknowledged. In other words, a TCP sender might inject more than one packet at a time and does not necessarily have to wait to get the acknowledgment for each packet. However, if the TCP sender does not receive any acknowledgment within a certain period of time, it times out and retransmits all the data that were not acknowledged.
However, the link layer does not have any knowledge of the application to which these blocks belong, and the link layer might be transmitting the blocks even after the application itself has issued and forwarded a duplicate copy of the data to be sent or the segment is no longer of any use (for example a Real Time Packet arriving too late). This results in unnecessary retransmissions leading to a waste of bandwidth and/or an added delay.
Apart from the timeout based loss detection and recovery mechanism, most of the transport protocols have auxiliary methods to detect loss. As an example, TCP initiates its loss recovery by detecting three duplicate acknowledgments for the same block. A TCP receiver sends one or more duplicate acknowledgments to a TCP sender if it detects holes in its data stream. In other words, if the first packet gets lost in the stream of 10, the remaining nine packets will generate a duplicate acknowledgment for the first packet. A TCP sender waits for at least 3 duplicate acknowledgments before it retransmits the data packet. Please note that even with these three duplicate acknowledgments being generated, and if the TCP sender does not receive the acknowledgment, then the sender will finally timeout. This means, that if a timeout has occurred, then the three duplicate acknowledgments become a redundant and/or superfluous transmission.
Extending the previous example, if the number of data packets into the sender's buffer is less than or equal to 3 segments, then the TCP receiver will never be able to generate 3 duplicate acknowledgments. In these cases, the TCP sender can recover only after a timeout. Please note that TCP gradually increases the amount of data sent into the network. And therefore, if the wireless link goes bad at the start of the connection, then the sender will timeout. In addition, when the sender timeouts, it also reduces its estimate of network capacity and in these cases, the estimate could become as small as 2 packets. Reducing the estimate of network capacity can severely degrade the entire connection because the TCP sender increases its estimate of network capacity very slowly after a retransmission timeout.
Other transport layer protocols have mechanism similar to the above explained concept of 3 duplicate acknowledgments and timeouts to detect loss. Nevertheless, it is to be noted that 3 duplicates are just an example, and other protocols may use variants of this mechanism to achieve the same effect.
A. Bakre and B. R. Badrinath have recently proposed in “Implementation and Performance Evaluation of Indirect-TCP”, IEEE Trans. Comp., Vol. 46, No. 3, March 1997, pp. 260-278, to split the original TCP connection into separate connections for the wired and wireless parts of the path, and use performance enhancing proxy servers. On the wireless part, a protocol optimized for error recovery may be used.
Drawbacks of that approach, however, include violation of the end-to-end TCP semantics, since acknowledgments may reach the sender before the data reaches its destination, and a significant overhead is caused by the back-to-back processing and considerable per-connection state maintenance.